<?php
/**
 * 用户控制器
 */
class UserController extends Controller{
    //验证码生成
    //以下代码的意思:在当前控制器，以方法的形式访问其他的类
    //访问./index.php?r = user/captcha就会访问到以下的方法CCaptchaAction
    function actions(){
        return array(
            'captcha' => array(
                //路径别名: framework/web/widgets/captcha/CCaptchaAction
                'class'=>'Captcha',
                'width'=>'80',
                'height'=>'30',
                'maxLength'=>'4',
                'minLength'=>'4',

            ),
//            'co'=>array(
                //路径别名 application 代表protected 目录
                //user/co 就会访问computer里面的run方法
//              'class'=>'application.controllers.Computer',
//            ),
        );
    }
    public function actionLogin(){

        $user_login = new LoginForm();

        if(isset($_POST['LoginForm'])){
            //MD5加密
//            $_POST['LoginForm']['password'] = md5($_POST['LoginForm']['password']);
            //收集表单信息
            $user_login->attributes = $_POST['LoginForm'];
//            var_dump($user_login);
            //validate校验用户名密码是否为空
            if($user_login->validate() && $user_login->login()){
                $this->redirect('./index.php');
//                echo "登录成功";
            }
        }
        //通过控制器方法调用视图
        $this->render('login',array('user_login'=>$user_login));
    }
//退出系统
    public  function  actionLogout(){
        //删除session信息
        Yii::app()->session->clear();//删除session内存里面session变量信息
        Yii::app()->session->destroy();//删除服务器的session文件
        Yii::app()->user->logout();//清除浏览器cookies
        $this -> redirect('/');
    }

    //注册
    function actionRegister(){

        //render会渲染布局，renderPartial不会渲染布局
//        $this->renderPartial('register');
        //实例化数据模型对象
        $user_model = new User();

        //定义性别
        $sex[1] = "男";
        $sex[2] = "女";
        $sex[3] = "保密";
        //定义学历
        $xueli[1] = "-请选择-";
        $xueli[2] = "-小学-";
        $xueli[3] = "-初中-";
        $xueli[4] = "-高中-";
        $xueli[5] = "-大学-";
        //定义爱好信息
        $hobby[1] = "篮球";
        $hobby[2] = "足球";
        $hobby[3] = "排球";
        $hobby[4] = "直播";

        //如果用户有注册表单
        if(isset($_POST['User'])){
            //收集转化爱好的信息implode
            if(is_array($_POST['User']['user_hobby'])){
                $_POST['User']['user_hobby'] = implode(',',$_POST['User']['user_hobby']);
            }
            //密码md5加密
            $_POST['User']['password'] = md5($_POST['User']['password']);
            $_POST['User']['password2'] = md5($_POST['User']['password2']);


//            var_dump($_POST['User']['user_hobby']);

//            foreach($_POST['User'] as $k => $v){
//                $user_model-> $k = $v;
//            }
            //上边的foreach 在yii框架里边有优化，模型属性attributes来进行优化
            //attributes 属性已经把foreach 继承好了，可以直接使用
            $user_model->attributes = $_POST['User'];

            //存储,跳转
            if($user_model->save()){
                $this->redirect('./index.php');
            }
        }
//        var_dump($user_model);


        //
        $this->render('register',array('user_model'=>$user_model,'sex'=>$sex,'xueli'=>$xueli,'hobby'=>$hobby));
    }

    //session添加
    function actionS1(){
        Yii::app()->session['uname']='cx';
        echo "make session success";
    }
    //session输出
    function actionS2(){
        echo Yii::app()->session['uname'];
    }
    //session删除
    function actionS3(){
        //删除一个session
        unset( Yii::app()->session['uname']);

        //删除全部session
        Yii::app()->session->clear();//删除session变量
        Yii::app()->session->destroy();//删除服务器session信息
    }

    //cookie 在Yii中的使用
    function actionC1(){
        //设置cookie
        $ck = new CHttpCookie('hobby','篮球','足球');
        $ck->expire = time()+3600;
        //把$ck对象放入cookie组件里面
        Yii::app()->request->cookie['hobby'] = $ck;

        echo "cookie mack success";
    }
    function actionC2(){
        echo Yii::app()->request->cookie['hobby'];
    }
    function actionC3(){
        //删除一个cookie
        unset(Yii::app()->request->cookie['hobby']);

    }

    function actionLu(){
        //输出路径别名/yii就是框架直接可以操作使用的类
        //Yii::app() 是一个实例，是在当前框架里边唯一可以直接使用的实例对象
        //echo Yii::getPathOfAlias('system.web');// ..\framework\web
        //echo Yii::getPathOfAlias('application');// ..\protected
        echo Yii::getPathOfAlias('webroot');// ..\shop 入口文件的地方
    }

}